var express = require('express');
var router = express.Router();
const sql = require('../sql/sql')
const pro = require('../sql/pro')
const xlsx = require('node-xlsx')
const uuid = require('node-uuid')


/**
* @apiGroup 商品模块
* @api {get} /pro 获取所有商品
* @apiVersion 0.0.0
* @apiDescription 获取所有商品
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {json} data 请求说明
* @apiSuccessExample {json} Success-Response:
res.send({
    stete:200,
    title:"请求订单数据成功",
    data:[{},{}]
})
* @apiSampleRequest http://localhost:3000/api/pro
*/

router.get('/', function (req, res, next) {
    sql.find(pro, {}, { _id: 0, __v: 0 }).then(data => {
        res.send({
            state:200,
            title:'请求成功',
            data:data
        })

    })
});

/**
* @apiGroup 商品模块
* @api {get} /pro/page 分页获取商品
* @apiVersion 0.0.0
* @apiDescription 分页获取商品
* @apiParam {String} num 一页显示的条数
* @apiParam {String} index 页码数
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {json} data 请求说明
* @apiSuccessExample {json} Success-Response:
res.send({
    stete:200,
    title:"请求第${index}页数据成功",
    data:[{},{}]
})
* @apiSampleRequest http://localhost:3000/api/pro/page
*/


router.get("/page", function (req, res, next) {
    const { num, index } = req.query;
    sql.page(pro, {}, {}, num - 0, index - 0).then(data => {
        res.send({
            state:200,
            title:`请求第${index}页数据成功`,
            data:data 
        })
    })
})

/**
* @apiGroup 商品模块
* @api {get} /pro/sort 商品排序
* @apiVersion 0.0.0
* @apiDescription 商品排序
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {json} data 请求说明
* @apiSuccessExample {json} Success-Response:
res.send({
    stete:200,
    title:"请求数据成功",
    data:[{},{}]
})
* @apiSampleRequest http://localhost:3000/api/pro/sort
*/

router.get("/sort", function (req, res, next) {
    const obj = req.query;
    sql.sort(pro, {}, {}, obj).then(data => {
        res.send({
            state:200,
            title:`请求数据成功`,
            data:data 
        })
    })
})

/**
* @apiGroup 商品模块
* @api {get} /pro/search 根据关键字搜索商品
* @apiVersion 0.0.0
* @apiDescription 根据关键字搜索商品
* @apiParam {object} proName 搜索关键字
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {json} data 请求说明
* @apiSuccessExample {json} Success-Response:
res.send({
    stete:200,
    title:"搜索成功",
    data:[{},{}]
})
* @apiSampleRequest http://localhost:3000/api/pro/search
*/

router.get("/search",function(req,res,next){
    let obj = req.query;
    let reg = new RegExp(obj.proName)
    sql.find(pro,{proName:reg},{__v:0,_id:0}).then((data)=>{
        res.send({
            state:200,
            title:"搜索成功",
            data:data
        });
    })
})

/**
* @apiGroup 商品模块
* @api {get} /pro/one 获取商品详情
* @apiVersion 0.0.0
* @apiDescription 获取商品详情
* @apiParam {string} proId 商品的唯一Id
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {json} data 请求说明
* @apiSuccessExample {json} Success-Response:
res.send({
    stete:200,
    title:"搜索成功",
    data:[{},{}]
})
* @apiSampleRequest http://localhost:3000/api/pro/one
*/

router.get("/one",function(req,res,next){
    const proId = req.query.proId;
    sql.find(pro,{proId},{__v:0,_id:0}).then(data=>{
        res.send({
            stete:200,
            title:"获取商品详情成功",
            data:data
        })
    })
})

/**
* @apiGroup 商品模块
* @api {get} /pro/fl 获取商品分类
* @apiVersion 0.0.0
* @apiDescription 获取商品分类
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} data 请求说明
* @apiSuccessExample {json} Success-Response:
res.send({
    stete:200,
    title:"请求商品分类成功",
    data:[1,2,3,...]
})
* @apiSampleRequest http://localhost:3000/api/pro/fl
*/

router.get("/fl",function(req,res,next){
    sql.distinct(pro,"column").then(data=>{
        res.send({
            state:200,
            title:"请求商品分类成功",
            data:data
        })
    })
})


/**
* @apiGroup 商品模块
* @api {get} /pro/getBrand 获取商品品牌
* @apiVersion 0.0.0
* @apiDescription 获取商品品牌
* @apiParam {string} column 商品的分类
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {json} data 请求说明
* @apiSuccessExample {json} Success-Response:
res.send({
    stete:200,
    title:"请求商品品牌成功",
    data:[{},{},{}..]
})
* @apiSampleRequest http://localhost:3000/api/pro/getBrand
*/

router.get("/getBrand",function(req,res,next){
    const { column } = req.query;
    sql.find(pro,{column},{brand:1,logo:1,_id:0}).then(data=>{
        let arr = data;
        for(let i=0;i<arr.length;i++){
            for(let j=i+1;j<arr.length;j++){
                if(arr[i].brand === arr[j].brand){
                    arr.splice(j,1);
                    j--;
                }
            }
        }
        res.send({
            state:200,
            title:"请求商品品牌成功",
            data:arr
        })
    })
})

/**
* @apiGroup 商品模块
* @api {get} /pro/brandColumn 根据商品分类和品牌获取商品数据
* @apiVersion 0.0.0
* @apiDescription 根据商品分类和品牌获取商品数据
* @apiParam {string} column 商品的分类
* @apiParam {string} brand 商品的品牌
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {json} data 请求说明
* @apiSuccessExample {json} Success-Response:
res.send({
    stete:200,
    title:"根据商品分类和品牌获取商品数据",
    data:[{},{},{}..]
})
* @apiSampleRequest http://localhost:3000/api/pro/brandColumn
*/

router.get("/brandColumn",function(req,res,next){
    const { brand,column } = req.query;
    sql.find(pro,{brand,column}).then(data=>{
        res.send({
            state:200,
            title:"根据商品分类和品牌获取商品数据",
            data:data
        })
    })
})


module.exports = router;
